/*
Problem Description
面试那天，刚好来了m*n个MM，站成一个m*n的队列，副导演Fe(OH)2为每个MM打了分数，分数都是32位有符号整数。
一开始我很纳闷：分数怎么还有负的？Fe(OH)2解释说，根据选拔规则，头发染成黄色、化妆太浓、穿的太少等等都要扣分数的，扣的多了就可能是负分了，当然，如果发现话语中夹有日语，就直接给-2147483648分了。
分数送上来了，是我做决定的时候了，我的一个选拔原则是，要选一个面试分数绝对值（必须还是32位整数）最大的MM。
特别说明：如果不幸选中一个负分的MM,也没关系，因为我觉得，如果不能吸引你，那要想法恶心你。
Input
输入数据有多组，每组的第一行是两个整数m和n，表示应聘MM的总共的行列数，然后是m行整数，每行有n个，m和n的定义见题目的描述。
Output
对于每组输入数据，输出三个整数x,y和s，分别表示选中的MM的行号、列号和分数。
note:行号和列号从一开始，如果有多个MM的分数绝对值一样，那么输出排在最前面的一个（即行号最小的那个，如果行号相同则取列号最小的那个）。 
Sample Input
2 3
1 4 -3
-7 3 0
Sample Output
2 1 -7
 */
package com.yuan.algorithms.practice201511;

import java.util.Scanner;

/**
 * @author YouYuan
 * <br>E-mail:1265161633@qq.com
 * <br>创建时间：2015年11月21日 上午9:56:24
 * <br>说明:
 */
public class 绝对值的最大值 {

	static Scanner in = new Scanner(System.in);
	public static void main(String[] args) {
		while(in.hasNext()) {
			int n = in.nextInt();
			int m = in.nextInt();
			long[][] arr = new long[n][m];
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < m; j++) {
					arr[i][j] = in.nextLong();
				}
			}
			long max = -0xffffffff;
			int x = 0, y = 0;
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < m; j++) {
					if (Math.abs(arr[i][j]) > max) {
						max = Math.abs(arr[i][j]);
						x = i;
						y = j;
					}
				}
			}
			System.out.println((x+1)+" "+(y+1)+" "+arr[x][y]);
		}
	}

}
